//priority 47
/**
 * 随机词条的基类实现了怪物随机词条的函数
*/
function TestEntry(name) {
    RandomEntry.call(this, name)
}
// 建立原型链
TestEntry.prototype = Object.create(RandomEntry.prototype);
TestEntry.prototype.constructor = TestEntry;

//怪物初始化的时候保存的自定义数据
TestEntry.prototype.SaveData = function (nbt, monster, level) {
    let Data = new $CompoundTag()
    Data.put("level", level)//将词条等级保存
    Data.put("count", 0)//将词条等级保存
    nbt.put(this.getName(), Data)
}

//每tick自动执行的函数
TestEntry.prototype.tick = function (nbt, monster, level) {
    // if (monster instanceof LivingEntity) {
    //     if (monster.level.time % 20 != 0) return
    //     let data = nbt.get(this.getName())
    //     monster.attack(data.getInt("level"))
    // }
}

//死亡的时候自动执行的函数
TestEntry.prototype.death = function (nbt, monster, level) {
    // let count = nbt.get(this.getName()).getInt("count")
    // if (count < level) {
    //     count = count + 1
    //     nbt.get(this.getName()).put("count", count)
    //     return global.EntryResult.error()
    // }
    return global.EntryResult.pass()
}

//攻击的时候触发的函数
TestEntry.prototype.attack = function (nbt, monster, level, message) {
    // let count = nbt.get(this.getName()).getInt("count")
    // if (count < level) {
    //     count = count + 1
    //     message.damage = 1
    //     nbt.get(this.getName()).put("count", count)
    // } else {
    //     message.damage = message.damage * 10
    // }
    return global.EntryResult.pass()
}

//防御的时候触发的函数
TestEntry.prototype.defense = function (nbt, monster, level, message) {
    // let count = nbt.get(this.getName()).getInt("count")
    // if (count < level) {
    //     count = count + 1
    //     message.damage = 1
    //     nbt.get(this.getName()).put("count", count)
    // }
    return global.EntryResult.pass()
}

//治愈的时候触发的函数（error时候完全阻止治愈）
BaseEntry.prototype.heal = function (nbt, monster, level, message) {
    let count = nbt.get(this.getName()).getInt("count")
    if (count < level) {
        count = count + 1
        message.amount = 1
        nbt.get(this.getName()).put("count", count)
    }
    return global.EntryResult.error()
}

var a = new TestEntry("test").init()
//注册技能自身
global.EntryHelper.RegisterEntry(a).AddToEntryGroup(a, "random_group")
